package dao;

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;

public class BaseDao<T> {
	private	Class<T> baClass;
	@SuppressWarnings("unchecked")
	public BaseDao() {
		ParameterizedType pt=(ParameterizedType) getClass().getGenericSuperclass();//获取父类类名，可理解为获得表格所对应的类
		baClass=(Class<T>) pt.getActualTypeArguments()[0];//由于T可能有多个，例如<T1,T2>，此处获取第一个T；
	}
	public void insert(T o){
		StringBuffer sql=new StringBuffer("insert into ").append(baClass.getSimpleName())
				.append("_info")
				.append("(");
		Field[] field=baClass.getDeclaredFields();//获得类的所有申明字段
		int n=field.length;
		for(int i=0;i<n;i++){
			sql.append(field[i].getName());
			if(i<n-1) sql.append(",");
			else sql.append(")");
		}
		sql.append(" values(");
		for(int i=0;i<n;i++){
			sql.append("?");
			if(i<n-1) sql.append(",");
			else sql.append(")");
		}
		System.out.println(sql);
	}
	
	public T getSeId(int id){
		T o=null;
		
		return o;
	}
}
